{"version":3,"file":"checkable-tag copy.vue2.mjs","sources":["../../../../../../packages/components/checkable-tag/src/checkable-tag copy.vue"],"sourcesContent":["<template>\r\n  <div\r\n    :style=\"{ gap: `${tagGap}px` }\"\r\n    :class=\"[bem.b(), bem.is(size), bem.is(disabled ? 'disabled' : '')]\"\r\n  >\r\n    <template v-for=\"(tag, idx) in newTags\" :key=\"tag\">\r\n      <a-checkable-tag\r\n        :style=\"tagMaxWidth ? { maxWidth: `${tagMaxWidth}px` } : {}\"\r\n        :class=\"[\r\n          bem.e('tag-content'),\r\n          bem.is(newValue.indexOf(tag) > -1 ? 'checked' : ''),\r\n        ]\"\r\n        :checked=\"newValue.indexOf(tag) > -1\"\r\n        @change=\"(checked) => handleCheck(tag, checked)\"\r\n      >\r\n        <div :class=\"bem.e('tag')\">\r\n          <span>{{ tag }}</span>\r\n          <ll-icon\r\n            v-if=\"showCloseIcon(idx)\"\r\n            icon-name=\"icon-close2\"\r\n            @click=\"handleClose(tag)\"\r\n          />\r\n        </div>\r\n      </a-checkable-tag>\r\n    </template>\r\n    <ll-tag v-if=\"!enableAdd && newTags.length === 0\" shape=\"round\">\r\n      {{ emptyText || '暂无数据' }}\r\n    </ll-tag>\r\n    <!-- 新增标签 -->\r\n    <template v-if=\"enableAdd\">\r\n      <ll-tag\r\n        v-if=\"!inputVisible\"\r\n        shape=\"round\"\r\n        :icon=\"{\r\n          iconName: 'icon-add',\r\n        }\"\r\n        :class=\"[bem.e('add-tag'), bem.is(isDisabledAddTag ? 'disabled' : '')]\"\r\n        @click=\"showInput\"\r\n      >\r\n        {{ addTagText }}\r\n      </ll-tag>\r\n      <ll-input\r\n        v-else\r\n        ref=\"inputRef\"\r\n        v-model:value.trim=\"inputValue\"\r\n        :placeholder=\"placeholder\"\r\n        size=\"small\"\r\n        :style=\"{ width: `${inputWidth}px` }\"\r\n        :class=\"[bem.e('input')]\"\r\n        @blur=\"handleInputConfirm\"\r\n        @keyup.enter=\"handleInputConfirm\"\r\n      />\r\n    </template>\r\n  </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, nextTick, ref, watch } from 'vue'\r\nimport { checkableTagProps } from './checkable-tag'\r\n\r\nimport { createNamespace } from '@ll-plus/utils'\r\n\r\ndefineOptions({ name: 'LlCheckableTag' })\r\n\r\nconst props = defineProps(checkableTagProps)\r\nconst emits = defineEmits(['update:value', 'change'])\r\n\r\nconst bem = createNamespace('checkable-tag')\r\n\r\nconst inputRef = ref()\r\nconst inputValue = ref('')\r\nconst inputVisible = ref(false)\r\nconst newTags = ref([] as string[])\r\n\r\nconst newValue = computed({\r\n  get() {\r\n    return Array.isArray(props.value) ? props.value : []\r\n  },\r\n  set(val) {\r\n    emits('update:value', val)\r\n    emits('change', val)\r\n  },\r\n})\r\n\r\n// 新增标签是否禁用\r\nconst isDisabledAddTag = computed(() => {\r\n  return (\r\n    props.disabled ||\r\n    props.disabledAddTag ||\r\n    (props.maxAddableTags && newTags.value.length >= props.maxAddableTags) ||\r\n    (props.selectionMode === 'multiple' &&\r\n      props.addAutoSelect &&\r\n      props.maxChecked &&\r\n      newValue.value.length >= props.maxChecked)\r\n  )\r\n})\r\n\r\nconst showCloseIcon = computed(() => {\r\n  return (idx: number) => {\r\n    if (props.deleteRule === 'all') {\r\n      return true\r\n    } else if (props.deleteRule === 'none') {\r\n      return false\r\n    } else if (props.deleteRule === 'exceptFirstN') {\r\n      return idx >= props.exceptCount\r\n    }\r\n    return false\r\n  }\r\n})\r\n\r\nconst handleClose = (tag: string) => {\r\n  if (props.disabled || props.disabledCloseTag) return\r\n\r\n  newTags.value = newTags.value.filter((i) => i !== tag)\r\n  if (newValue.value.includes(tag)) {\r\n    newValue.value = newValue.value.filter((i) => i !== tag)\r\n  }\r\n}\r\n\r\n// 选中/取消标签\r\nconst handleCheck = (tag: string, checked: boolean) => {\r\n  if (props.disabled) return\r\n\r\n  // 单选\r\n  if (props.selectionMode === 'single') {\r\n    if (!newValue.value.includes(tag)) {\r\n      newValue.value = [tag]\r\n    }\r\n  }\r\n  // 多选\r\n  else {\r\n    if (\r\n      checked &&\r\n      props.maxChecked &&\r\n      newValue.value.length >= props.maxChecked\r\n    ) {\r\n      return\r\n    }\r\n    newValue.value = checked\r\n      ? [...newValue.value, tag]\r\n      : newValue.value.filter((i) => i !== tag)\r\n  }\r\n}\r\n\r\n// 显示输入框\r\nconst showInput = () => {\r\n  if (isDisabledAddTag.value) return\r\n\r\n  inputVisible.value = true\r\n  nextTick(() => {\r\n    inputRef.value.focus()\r\n  })\r\n}\r\n\r\n// 确认输入框\r\nconst handleInputConfirm = () => {\r\n  if (inputValue.value && !newTags.value.includes(inputValue.value)) {\r\n    newTags.value.push(inputValue.value)\r\n\r\n    // 自动选择新增标签\r\n    if (props.addAutoSelect) {\r\n      if (props.selectionMode === 'single') {\r\n        newValue.value = [inputValue.value]\r\n      } else {\r\n        newValue.value = [...newValue.value, inputValue.value]\r\n      }\r\n    }\r\n  }\r\n\r\n  inputVisible.value = false\r\n  inputValue.value = ''\r\n}\r\n\r\nwatch(\r\n  () => props.selectionMode,\r\n  (val) => {\r\n    if (val === 'single') {\r\n      newValue.value = [newValue.value[0]]\r\n    }\r\n  },\r\n)\r\n\r\nwatch(\r\n  () => props.options,\r\n  (val) => {\r\n    newTags.value = val\r\n  },\r\n  { immediate: true, deep: true },\r\n)\r\n\r\nwatch(\r\n  () => props.value,\r\n  (val) => {\r\n    if (!val || !Array.isArray(val)) return\r\n\r\n    const newTagsSet = new Set(newTags.value)\r\n    const addedTags = [] as string[]\r\n\r\n    // 遍历 val 中的每个标签\r\n    val.forEach((tag) => {\r\n      if (tag && !newTagsSet.has(tag)) {\r\n        // 这个标签不在 newTags 中，需要添加\r\n        addedTags.push(tag)\r\n        newTagsSet.add(tag) // 添加到 Set 避免重复\r\n      }\r\n    })\r\n\r\n    // 如果有新标签需要添加\r\n    if (addedTags.length > 0) {\r\n      newTags.value = [...newTags.value, ...addedTags]\r\n    }\r\n  },\r\n  { immediate: true, deep: true },\r\n)\r\n</script>\r\n"],"names":["_createElementBlock","tagGap","_normalizeClass","_unref","size","disabled","_openBlock","_Fragment","_renderList","_createBlock","_normalizeStyle","tagMaxWidth","_createElementVNode","enableAdd","emptyText","_createCommentVNode","addTagText","placeholder","inputWidth"],"mappings":"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"}